home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
DATETIME.SWG
/
0002_DATE1.PAS.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-05-28
|
1KB
|
46 lines
{
I posted some routines on doing calendar math using Integers quite
a While back. That gives you a relative date of about 89 years. Use
LongInt For more. Avoids pulling in the Real lib that julian requires.
Just making them up again as I Type them in the reader. There may be a
typo or two.
}
Function leapyear (c, y : Byte) : Boolean;
begin
if (y and 3) <> 0 then
leapyear := False
else
if y <> 0 then
leapyear := True
else
if (c and 3) = 0 then
leapyear := True
else
leapyear := False;
end;
Function DaysInMonth (c, y, m : Byte) : Integer;
begin
if m = 2 then
if leapyear then
DaysInMonth := 29
else
DaysInMonth := 28
else
DaysInMonth := 30 + (($0AB5 shr m) and 1);
end;
Function DaysInYear (c, y : Byte) : Integer;
begin
DaysInYear := DaysInMonth(c, y, 2) + 337;
end;
Function DayOfYear (c, y, m, d :Byte) : Integer;
Var i, j : Integer;
begin
j := d;
For i := 1 to pred(m) do
j := j + DaysInMonth(c,y,i);
DayOfYear := j;
end;